const joi = require('joi')

const username = joi.string().min(1).required()
const password = joi.string().pattern(/^[\S]{6,18}$/).required()
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const email = joi.string().email()
const age = joi.number()
const avatar = joi.string().dataUri().required()

exports.reg_login_schema = {
	body:{
		username,
		password
	}
}
exports.reg_schema = {
	body:{
		username,
		password,
		nickname,
		email,
		age,
	}
}
exports.update_userinfo_schema = {
  body: {
    id,
    nickname,
    email,
  },
}

exports.update_password_schema = {
  body: {
    // 使用 password 这个规则，验证 req.body.oldPwd 的值
    oldPwd: password,
    // 使用 joi.not(joi.ref('oldPwd')).concat(password) 规则，验证 req.body.newPwd 的值
    // 解读：
    // 1. joi.ref('oldPwd') 表示 newPwd 的值必须和 oldPwd 的值保持一致
    // 2. joi.not(joi.ref('oldPwd')) 表示 newPwd 的值不能等于 oldPwd 的值
    // 3. .concat() 用于合并 joi.not(joi.ref('oldPwd')) 和 password 这两条验证规则
    newPwd: joi.not(joi.ref('oldPwd')).concat(password),
  },
}

exports.update_avatar_schema = {
  body: {
    avatar,
  },
}
